package org.myboot.login_23010304.cron;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.json.Json;
import javax.json.JsonObject;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 *先把类改成web接口类
 * @author chenwenjia, 2025-03-04
 */

@Controller
public class Tlogin {

    // 声明一个具体的接口方法
    @RequestMapping("/tologin")
    // @ResponseBody
    public String tologin(String username,String password) throws SQLException, ClassNotFoundException {

        // 1、链接数据库
        Connection con = JdbcU.getCon();
        // 2、预处理sql语句以及sql的参数话：查询select ，新增/添加：insert，更新/更改：update
        PreparedStatement statement = con.prepareStatement("select * from user where name=? and password=?");
        // sql 的参数话处理
        statement.setString(1, username);
        statement.setString(2, password);
        // 3、执行sql查询
        ResultSet resultSet = statement.executeQuery();
        if (resultSet.next()) {
            return "success.html";
        }
        return "失败";

        /*
         *  一次请求的生命周期
         * 1、浏览器中访问html文件--
         * 2、通过提交from表单，实现请求后端接口
         * 3、后端接口通过接受参数，以及内部逻辑：操作数据库，其他判断逻辑
         * 4、return 返回
         *
         **/

    }
    // 列表


    // 在写一个具体的接口方法
    @RequestMapping("/list")
    @ResponseBody
    public String list(String username) throws SQLException, ClassNotFoundException {
        /**
         * 1、接收入参数
         * 2、链接数据库
         * 3、写sql，查询sql--select:查询出来的数据是set集合，所以需要循环，在循环过程中解析出来每一列数据；------ ，修改和插入sql：insert/update
         * 4、把查询出来的数据，拼接成html的表格样子：<tr><td>username</td><td>product</td></tr>
         * 5、把html页面中的代码，声明成一个变量，aaa=“html的内容”
         * 6、aaa的变量，其中需要替换的内容，替换成第4点拼接出来的字符串【相当于字符串的替换】
         * 7、return 返回替换后的字符串即可【替换后的字符串包含了html页面和查询出来的数据】
         */

        //链接数据库，并返回了链接数据库的对象con
        Connection con = JdbcU.getCon();
        Statement statement = con.createStatement();
        // sql注入"select name,password from user where name='dongl' union select name,class_name from student_list"
        String sql = "select name,password from user where name=\'" + username +"\'";
        ResultSet resultSet = statement.executeQuery(sql);

        Map<String, Object> userMap = new HashMap<String, Object>();
        Map<String, String> users = new HashMap<String, String>();
        while (resultSet.next()) {
            String id = resultSet.getString(3);
            String name = resultSet.getString(2);
            users.put(id,name);

        }
        userMap.put("data", users);

        return Json.createObjectBuilder(userMap).build().toString();
    }
}

